import config from "./config";
Page({
  /**
   * 页面的初始数据
   */
  data: {
    allObj: {},
    showObj: {},
    inputValue: '',
    maxNum: 5
  },
  // 数据改变
  changeValue (e) {
    const inputValue = e.detail
    this.setData({
      inputValue: inputValue
    })
    this.screening()
  },
  // 数据重置
  resetData () {
    this.setData({
      allObj: config.getSearchObj(),
    })
    this.setData({
      showObj: this.data.allObj
    })
  },
  // 确定筛选
  confirm () {
    if (this.data.showObj.keyList.length === 0) return
    // console.log('确定筛选')
    const keys = this.data.showObj.keyList.map(val => val.key)
    const keyList = JSON.stringify(keys)
    wx.navigateTo({
      url: `/pages/trade/trade?keyList=${keyList}`,
    })
  },

  // 选中一个
  clickOne (e) {
    const { id, key, label } = e.currentTarget.dataset
    // 最外层父级
    const fuKey = this.data.allObj.keyList.findIndex(pre => pre.key === id)
    if (fuKey === -1) {
      if (this.data.allObj.keyList.length === this.data.maxNum) {
        wx.showToast({ title: '最多选择5个行业，数量已达上限', icon: 'none' });
        return
      } else {
        this.data.allObj.keyList.push({ key: id, label: label, parentkey: key })
      }
    } else {
      this.data.allObj.keyList.splice(fuKey, 1)
    }
    // 每一个子集
    const Fu = this.data.allObj.children.find(val => val.key === key)
    const indexKey = Fu.keyList.findIndex(pre => pre === id)
    if (indexKey === -1) {
      Fu.keyList.push(id)
    } else {
      Fu.keyList.splice(indexKey, 1)
    }
    this.setData({
      allObj: this.data.allObj
    })
    // console.log(this.data.allObj, 'this.data.allObj')
    // 筛选结果
    this.screening()
  },
  // 筛选
  screening () {
    this.data.showObj = JSON.parse(JSON.stringify(this.data.allObj))
    this.data.showObj.children = this.data.showObj.children.filter(pre =>
      pre.children.some(poe => poe.label.indexOf(this.data.inputValue) !== -1)
    )
    this.data.showObj.children.forEach(po => {
      po.children = po.children.filter(pop =>
        pop.label.indexOf(this.data.inputValue) !== -1
      )
    })
    this.setData({
      showObj: this.data.showObj
    })
  },
  // 删除选中的
  clearOne (e) {
    const { key, parentkey } = e.currentTarget.dataset
    const fuKey = this.data.allObj.keyList.findIndex(pre => pre.key === key)
    this.data.allObj.keyList.splice(fuKey, 1)
    const Fu = this.data.allObj.children.find(pre => pre.key === parentkey)
    const childrenIndex = Fu.keyList.findIndex(pd => pd === key)
    Fu.keyList.splice(childrenIndex, 1)
    this.setData({
      allObj: this.data.allObj
    })
    // 筛选结果
    this.screening()
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad () {
    this.setData({
      allObj: config.getSearchObj(),
    })
    this.setData({
      showObj: this.data.allObj
    })
    // console.log(this.data.allObj, 'config.getSearchObj')
    // const list = []
    // config.original.forEach(val => {
    //   const te = []
    //   val.children.forEach((pre, index) => {
    //     if (index > 0) {
    //       te.push({
    //         key: pre.parentId + pre.id,
    //         label: pre.text
    //       })
    //     }
    //   })
    //   list.push({
    //     key: val.id,
    //     label: val.text,
    //     keyList: [],
    //     children: te
    //   })
    // })
    // console.log(JSON.stringify(list))
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady () { },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow () { },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide () { },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload () { },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh () { },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom () { },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage () { },
});
